home *** CD-ROM | disk | FTP | other *** search
/ PC Professionell 2006 May / PCpro_2006_05.ISO / files / mobile / fma-2.0-stable-setup.exe / {app} / source / uCallContact.pas < prev    next >
Encoding:
Pascal/Delphi Source File  |  2004-06-29  |  3.9 KB  |  161 lines

  1. unit uCallContact;
  2.  
  3. {
  4. *******************************************************************************
  5. * Descriptions: Call Contact Dialog
  6. * $Source: /cvsroot/fma/fma/uCallContact.pas,v $
  7. * $Locker:  $
  8. *
  9. * Todo:
  10. *
  11. * Change Log:
  12. * $Log: uCallContact.pas,v $
  13. * Revision 1.1  2004/06/29 13:47:22  z_stoichev
  14. * Initial checkin.
  15. *
  16. *
  17. }
  18.  
  19. interface
  20.  
  21. uses
  22.   Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  23.   Dialogs, StdCtrls, TntStdCtrls, Placemnt, Buttons, Menus;
  24.  
  25. const
  26.   MaxFavorites = 20;  
  27.  
  28. type
  29.   TfrmCallContact = class(TForm)
  30.     Label1: TLabel;
  31.     btnCall: TButton;
  32.     btnCancel: TButton;
  33.     btnSelect: TButton;
  34.     FormPlacement1: TFormPlacement;
  35.     edContact: TTntEdit;
  36.     SpeedButton1: TSpeedButton;
  37.     FavoritesPopupMenu: TPopupMenu;
  38.     AddToFavorites1: TMenuItem;
  39.     Organize1: TMenuItem;
  40.     N2: TMenuItem;
  41.     procedure btnCancelClick(Sender: TObject);
  42.     procedure FormShow(Sender: TObject);
  43.     procedure edContactChange(Sender: TObject);
  44.     procedure btnSelectClick(Sender: TObject);
  45.     procedure btnCallClick(Sender: TObject);
  46.     procedure FavoritesPopupMenuPopup(Sender: TObject);
  47.     procedure PopupMenu1Click(Sender: TObject);
  48.     procedure Organize1Click(Sender: TObject);
  49.     procedure AddToFavorites1Click(Sender: TObject);
  50.     procedure SpeedButton1Click(Sender: TObject);
  51.   private
  52.     { Private declarations }
  53.   public
  54.     { Public declarations }
  55.     procedure AddRecipient(str: String);
  56.   end;
  57.  
  58. var
  59.   frmCallContact: TfrmCallContact;
  60.  
  61. implementation
  62.  
  63. uses uGetContact, Unit1;
  64.  
  65. {$R *.dfm}
  66.  
  67. procedure TfrmCallContact.btnCancelClick(Sender: TObject);
  68. begin
  69.   Close;
  70. end;
  71.  
  72. procedure TfrmCallContact.FormShow(Sender: TObject);
  73. begin
  74.   edContact.Text := '';
  75.   edContact.SetFocus;
  76. end;
  77.  
  78. procedure TfrmCallContact.edContactChange(Sender: TObject);
  79. begin
  80.   btnCall.Enabled := Trim(edContact.Text) <> '';
  81.   btnCall.Default := btnCall.Enabled
  82. end;
  83.  
  84. procedure TfrmCallContact.btnSelectClick(Sender: TObject);
  85. begin
  86.   with TfrmGetContact.Create(nil) do
  87.     try
  88.       SelContacts := edContact.Text;
  89.       if ShowModal = mrOk then begin
  90.         edContact.Text := SelContacts;
  91.         edContact.SetFocus;
  92.       end;
  93.     finally
  94.       Free;
  95.     end;
  96. end;
  97.  
  98. procedure TfrmCallContact.btnCallClick(Sender: TObject);
  99. begin
  100.   Form1.RequestConnection;
  101.   try
  102.     Form1.VoiceCall(Form1.ExtractNumber(edContact.Text));
  103.     Close;
  104.   except
  105.     Form1.Status('Error daling number');
  106.   end;
  107. end;
  108.  
  109. procedure TfrmCallContact.FavoritesPopupMenuPopup(Sender: TObject);
  110. var
  111.   i: integer;
  112.   Item: TMenuItem;
  113. begin
  114.   AddToFavorites1.Enabled := edContact.Text <> '';
  115.   while FavoritesPopupMenu.Items.Count > 3 do
  116.     FavoritesPopupMenu.Items.Delete(3);
  117.   for i := 0 to Form1.FFavoriteCalls.Count-1 do begin
  118.     Item := TMenuItem.Create(FavoritesPopupMenu);
  119.     Item.Caption := Form1.FFavoriteCalls[i];
  120.     Item.AutoHotkeys := maManual;
  121.     Item.ImageIndex := 26;
  122.     Item.OnClick := PopupMenu1Click;
  123.     FavoritesPopupMenu.Items.Add(Item);
  124.   end;
  125. end;
  126.  
  127. procedure TfrmCallContact.PopupMenu1Click(Sender: TObject);
  128. begin
  129.   edContact.Text := (Sender as TMenuItem).Caption;
  130.   edContact.SetFocus;
  131. end;
  132.  
  133. procedure TfrmCallContact.Organize1Click(Sender: TObject);
  134. begin
  135.   Form1.EditCallFavorites1.Click;
  136. end;
  137.  
  138. procedure TfrmCallContact.AddToFavorites1Click(Sender: TObject);
  139. begin
  140.   if Form1.FFavoriteCalls.IndexOf(edContact.Text) = -1 then begin
  141.     Form1.FFavoriteCalls.Insert(0,edContact.Text);
  142.     while Form1.FFavoriteCalls.Count > MaxFavorites do
  143.       Form1.FFavoriteCalls.Delete(MaxFavorites);
  144.   end;
  145. end;
  146.  
  147. procedure TfrmCallContact.SpeedButton1Click(Sender: TObject);
  148. var
  149.   p: TPoint;
  150. begin
  151.   with SpeedButton1 do p := ClientToScreen(Point(0,Height));
  152.   FavoritesPopupMenu.Popup(p.X,p.Y);
  153. end;
  154.  
  155. procedure TfrmCallContact.AddRecipient(str: String);
  156. begin
  157.   edContact.Text := str;
  158. end;
  159.  
  160. end.
  161.